﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace proFIT_WPF
{
    /// <summary>
    /// Interaction logic for RecepcijaWin.xaml
    /// </summary>
    public partial class RecepcijaWin : Window
    {
        radnaVerzija.DAL dalInst;
        List<radnaVerzija.Klijent> listaK;
        List<radnaVerzija.Rezervacija> listaR;
        public RecepcijaWin()
        {

            InitializeComponent();

            try
            {
                dalInst = radnaVerzija.DAL.Instanca;
                dalInst.kreirajKonekciju("localhost", "mydb", "root", "");
                radnaVerzija.DAL.KlijentDAO tmp = dalInst.getDAO.getKlijentDAO();
                listaK = tmp.getALL();
                KorisnikIscCB.ItemsSource = listaK;
                KorisnikPromInfCB.ItemsSource = listaK;
            
            }
            catch (Exception ex)
            {
               // throw ex;
            }


            DatumRezDTP.DisplayDate = DateTime.Now;
            DatumDP.DisplayDate = DateTime.Now;
        }

        private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void IzadjiUclanBT_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void UclaniBT_Click(object sender, RoutedEventArgs e)
        {
            //List<radnaVerzija.Aktivnost> aktivnosti = new List<radnaVerzija.Aktivnost>();

            List<string> aktivnosti = new List<string>();
            if (DodatAktCB.SelectedIndex == 0) aktivnosti.Add((string)DodatAktCB.Items[0]);
            if (DodatAktCB.SelectedIndex == 1) aktivnosti.Add((string)DodatAktCB.Items[1]);
            if (DodatAktCB.SelectedIndex == 2) aktivnosti.Add((string)DodatAktCB.Items[2]);
            if (DodatAktCB.SelectedIndex == 3) aktivnosti.Add((string)DodatAktCB.Items[3]);
            if (DodatAktCB.SelectedIndex == 4) aktivnosti.Add((string)DodatAktCB.Items[4]);

            
            //aktivnosti.Add((string)DodatAktCB.Items[0]);
            //aktivnosti.Add((string)DodatAktCB.Items[1]);
            //aktivnosti.Add((string)DodatAktCB.Items[2]);
            //aktivnosti.Add((string)DodatAktCB.Items[3]);
            //aktivnosti.Add((string)DodatAktCB.Items[4]);

            radnaVerzija.Klijent novi = new radnaVerzija.Klijent(ImeTB.Text,
                PrezimeTB.Text, JMBGTB.Text, DatumDP.DisplayDate, AdresaTB.Text,
              BrojTelTB.Text);

            
            //ZanimanjeCB.SelectedValue, aktivnosti, PopustRB.IsChecked,
            //  CijenaUclTB.Text);
            radnaVerzija.DAL.KlijentDAO temp = dalInst.getDAO.getKlijentDAO();
            
             
            radnaVerzija.Klijent provjera = null;
            provjera = temp.getByJMBG(JMBGTB.Text);

            if(provjera==null)
            {
                novi.IdOsobe = (int)temp.create(novi);
                refresh();
                MessageBox.Show("Uspjesno ste dodali klijenta!");
            }
            else
            {
                MessageBox.Show("Taj klijent vec postoji!");
            }

            int cijena=50;

         
           
           
           foreach(string a in aktivnosti)
           {  
               if(a=="Yoga")cijena+=45;
               else if(a=="Fitness")cijena+=40;
               else if(a=="Zumba")cijena+=55;
               else cijena+=35;
               
           }
           CijenaUclTB.Text = Convert.ToString(cijena);

             radnaVerzija.DAL.KorisnickiNalogDAO temp2=dalInst.getDAO.getKorisnickiNalogDAO();
               radnaVerzija.KorisnickiNalog kn=new radnaVerzija.KorisnickiNalog(DateTime.Now,true,cijena,Login.prijavljeniUposlenik,novi.IdOsobe);
               kn.IdNaloga = (int)temp2.create(kn,aktivnosti);
              
            //radnaVerzija.DAL.KlijentDAO novitmp = dalInst.getDAO.getKlijentDAO();
            //provjera=novitmp.getByUP()
        }


        private void refresh()
        {
            radnaVerzija.DAL.KlijentDAO tmp = dalInst.getDAO.getKlijentDAO();
            listaK = tmp.getALL();
            //uposleniciPromjenaLSB.ItemsSource = _lista;
            KorisnikIscCB.ItemsSource = listaK;
            KorisnikPromInfCB.ItemsSource = listaK;
        }

        private void IzadjiIscBT_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void IsclaniBT_Click(object sender, RoutedEventArgs e)
        {
            radnaVerzija.Klijent brisi = KorisnikIscCB.SelectedItem as radnaVerzija.Klijent;

            radnaVerzija.DAL.KlijentDAO temp1 = dalInst.getDAO.getKlijentDAO();
            temp1.delete(brisi);
            refresh();
            MessageBox.Show("Uspjesno ste izbrisali klijenta!");

        }

        private void IzadjiPromInfBT_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void PromijeniBT_Click(object sender, RoutedEventArgs e)
        {
            radnaVerzija.Klijent promjena = KorisnikPromInfCB.SelectedItem as radnaVerzija.Klijent;
            promjena.AdresaStanovanja = NovaAdresaTB.Text;
            promjena.BrojTelefona = NoviBrojTB.Text;

            promjena.IdOsobe = (KorisnikPromInfCB.SelectedItem as radnaVerzija.Klijent).IdOsobe;

            radnaVerzija.DAL.KlijentDAO temp3 = dalInst.getDAO.getKlijentDAO();
            temp3.update(promjena);
            refresh();
            //MessageBox.Show("Uspjesno ste promijenili podatke klijenta!");


            List<string> aktivnosti2 = new List<string>();
            if (NoveAktCB.SelectedIndex == 0) aktivnosti2.Add((string)DodatAktCB.Items[0]);
            if (NoveAktCB.SelectedIndex == 1) aktivnosti2.Add((string)DodatAktCB.Items[1]);
            if (NoveAktCB.SelectedIndex == 2) aktivnosti2.Add((string)DodatAktCB.Items[2]);
            if (NoveAktCB.SelectedIndex == 3) aktivnosti2.Add((string)DodatAktCB.Items[3]);
            if (NoveAktCB.SelectedIndex == 4) aktivnosti2.Add((string)DodatAktCB.Items[4]);


            int cijena = 50;

            foreach (string a in aktivnosti2)
            {
                if (a == "Yoga") cijena += 45;
                else if (a == "Fitness") cijena += 40;
                else if (a == "Zumba") cijena += 55;
                else cijena += 35;

            }

            CijenaUclTB.Text = Convert.ToString(cijena);

            radnaVerzija.DAL.KorisnickiNalogDAO temp2 = dalInst.getDAO.getKorisnickiNalogDAO();
            radnaVerzija.KorisnickiNalog kn = new radnaVerzija.KorisnickiNalog(DateTime.Now, true, cijena, Login.prijavljeniUposlenik, promjena.IdOsobe);
            temp2.update(kn, aktivnosti2);




            MessageBox.Show("Uspjesno ste promijenili podatke klijenta!");
            
        }

        private void IzadjiRezBT_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void RezervisiBT_Click(object sender, RoutedEventArgs e)
        {
            //DateTime datum=(DateTime)DatumRezDTP.SelectedDate;

           // radnaVerzija.Rezervacija nova = new radnaVerzija.Rezervacija(ImeIPrezRezTB.Text, DatumRezDTP.SelectedDate, VrijemeRezTB.Text);
        }
    }
}
